package com.shujia.day10;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Code13CollectionOperator {
    public static void main(String[] args) {
        /*
                boolean addAll(Collection c)  // 将另外一个集合中的数据添加到该集合中
                boolean removeAll(Collection c) //
                boolean containsAll(Collection c)
                boolean retainAll(Collection c)
         */

        Collection arrayList = new ArrayList();

        arrayList.add("22");
        arrayList.add("33");
        arrayList.add("44");

        Collection arrayList2 = new ArrayList();
        arrayList2.add("22");
        arrayList2.add("55");

        arrayList.addAll(arrayList2); // 将arrayList2集合数据添加到 arrayList中


        for (Object elem : arrayList) {
            // java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
//            System.out.println((int) elem);   // String类型不能直接强制转换成int/Integer

            System.out.println( Integer.parseInt((String) elem)); // 将字符串转成一个int类型
        }

        ArrayList arrayList3 = new ArrayList();
        arrayList3.add("44");
        arrayList3.add("55");

        arrayList.removeAll(arrayList3);

        System.out.println("====================");
        for (Object o : arrayList) {
            System.out.println((String) o);
        }

        ArrayList<Object> arrayList4 = new ArrayList<>();
        arrayList4.add("22");
        arrayList4.add("33");
        System.out.println(arrayList.containsAll(arrayList4));

        //  retainAll 判断两个集合中是否有交集的数据 如果有 那么保留调用集合中交集部分数据
//        System.out.println(arrayList.retainAll(arrayList2));
//        System.out.println(arrayList);  // 保存了 两个集合中交集的部分数据 去除了非交集的数据
//        System.out.println(arrayList2);  // arrayList2没有变化

        System.out.println(arrayList2.retainAll(arrayList));
        System.out.println(arrayList); //  22 33 22
        System.out.println(arrayList2); // 22

    }
}
